package org.shirdrn.document.preprocessing.core.common;

import java.io.File;
import java.io.FilenameFilter;
import java.io.IOException;

import org.shirdrn.document.preprocessing.api.Context;
import org.springframework.web.socket.TextMessage;
/**
 * 
 * @author zhangzhidong
 * comment generated at 2016年5月24日下午10:05:36
 * 实现了FilenameFilter接口
 * 
 * @version 1.1
 *
 */
public abstract class AbstractComponent implements Component,FilenameFilter {

	protected final Context context;
	private Component next;
	
	//step6
	public boolean isConnected(){
		if(context.getWebSocketSession()==null){
			return false;
		}else return context.getWebSocketSession().isOpen();
	}
	
	public boolean isSessionNull(){
		return context.getWebSocketSession() == null;
	}
	
	//step 3
	protected void sendMessage(String message){
		try {
			if(isConnected()){
				context.getWebSocketSession().sendMessage(new TextMessage(message));
			}
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	
	public AbstractComponent(final Context context) {
		this.context = context;
		
	}
	
	public Component getNext() {
		return next;
	}
	
	public Component setNext(Component next) {
		this.next = next;	
		return next;
	}
	/**
	 * MAC OSX 下面有.DS_Store这个需要被过滤掉，其他系统下没有这个问题，但是不能少！
	 * 另外，Unix like系统以.开头的是隐藏文件，比如.svn,.git，可能会含有，所以这个也需要过滤。
	 * @Param  
	 * @Author zhangzhidong
	 */
	public boolean accept(File dir, String name) {
		// TODO Auto-generated method stub
		if(name.startsWith("."))
			return false;
		else return true;
	}
	
}
